Over the past few years, constructing applications by assembling reusable software components has emerged as a highly productive and widely accepted way to develop custom applications. First generation products such as Microsoft's Visual Basic, with its VBX components and "forms-based" applications assembly process proved to be very useful in building a broad spectrum of applications. Visual Basic has been followed by other products such as Borland's Delphi, which further enhanced the basic component assembly application development model by adding more powerful data access components and object-oriented component extension capabilities.
The release of a windowing system, Internet protocol and platform independent product named Java represented an even further advance. Java represents an object-oriented language which satisfies the public's desire to animate and add dynamism to the static web pages of the Internet. More importantly, Java's platform independence levels the playing field for software vendors, enabling them to escape the dominance of a single supplier. Java permits writing to a virtual platform which is installed on most desktop web browsers. System managers have quickly recognized the advantage of a single master copy of programs that are stored in one place, ideal for easy update, that downloads to the client for the duration of the session, thus exploiting the users desktop processor in a client/server model but without the client side maintenance and version control costs. For details and background with respect to the Java System, reference may be made to a typical text, "Just Java", 2nd Edition, Peter van der Linden, Sun Microsystems, 1997.
More recently, the introduction of Java Beans has taken the component software assembly paradigm to a new level. Java Beans is an architecture and platform-neutral Application Programming Interface (API) for creating and using dynamic Java components. Java Beans and their common properties and functions are described in detail in the text, "Java in a Nutshell, 2nd. Edition, David Flanagan, O'Reilly and Assoc. Inc., 1997. Java Beans enhance the Java platform by allowing richer, more dynamic interaction. Java Beans allow developers to define independent components that can be used and re-used in a variety of combinations to compose new applications inside a variety of browser and non-browser environments. Java Beans components can be GUI widgets, non-visual functions and services, applets and more full-scale applications. Each of these components can be built by different developers at separate times. Java Beans components do not need to be part of the same application build but communicate dynamically.
Java employs a platform independent file format that concatenates and compresses many Java class, image and audio files into one called a JAR (Java Archive) file. One of the main attributes of the JAR file is to reduce the number of HTTP (HyperText Transfer Protocol) connections that need to be opened, thus reducing download times. The JAR file format is the popular ZIP format and is used as a general archiving tool. The JAR file archive format for Java Beans contains a Manifest file (MANIFEST.MF) which provides the basic information about the sub-element composition of a Java Bean. The Manifest file enables the association of attributes to files. There are a number of pre-defined attributes. For example, one of them is the "Java Bean:" attribute. A sub-element is a Java Bean if its "Java Bean:" attribute has the value "True".
However, there are limited abilities in JAR files for building rich associations between the sub-elements contained within the JAR file. Tools and programmers working in a Java Bean development environment need to be able to examine, add, change, or delete the associations between the sub-elements that make up a Java Bean and that make up the total JAR file. They are constrained in their ability to do this by the conventions and mechanics of the attribute mechanism in the Manifest file. It is very difficult, for instance, for a program to know with which Java Bean certain file sub-elements are associated, when more than one Java Bean resides in a JAR file. If an icon file, for instance, is present in the JAR file, does that icon file apply to the first Java Bean, to the last, or at all?
Consequently, it would be desirable to provide a methodology and structure for providing additional information about the Java Beans stored in a Java Archive file.